import numpy as np
import matplotlib.pyplot as plt

# TENSION E INTENSIDAD EN CIRCUITO ABIERTO ------------------------------------
superficie_no_tapada = np.array([0, 1/2, 3/4, 1])   # superficie irradiada
tension_en_vacio = np.array([93, 511, 526, 535]) # mV
corriente_cortocircuito = np.array([0.413, 33.3, 39, 42.0])  # mA

plt.figure()
plt.scatter(superficie_no_tapada*100, tension_en_vacio)
plt.grid()
plt.xlabel("Superficie irradiada (%)")
plt.ylabel("Tensión (mV)")
plt.title("Tensión en vacío fronte a superficie irradiada")
plt.show()

plt.figure()
plt.scatter(superficie_no_tapada*100, corriente_cortocircuito)
plt.grid()
plt.xlabel("Superficie irradiada (%)")
plt.ylabel("Corrente (mA)")
plt.title("Corrente en cortocircuito fronte a superficie irradiada")
plt.show()


# CELDAS SOLARES EN FUNCION DE LA INTENSIDAD ----------------------------------

data = np.array([[8, 348, 11.51], [12, 410, 23.4], [21, 442, 44.5], [51, 493, 73.0], [89, 516, 93.0], [102, 521, 190], [122, 526, 280], [138, 529, 299], [150, 529, 195]])

intensidad = data[:,0]  # [W/m^2]
tension = data[:,1] # mV
corriente = data[:,2]   # mA

plt.figure()
plt.scatter(intensidad, tension, label="Tensión (mV)")
plt.scatter(intensidad, corriente, label="Corrente (mA)")
plt.grid()
plt.legend()
plt.xlabel("Intensidade de Radiación (W/m^2)")
plt.ylabel("Tensión (mV) / Corrente (mA)")
plt.title("Tensión/Corrente fronte a Intensidade de radiación")
plt.show()


# TRANSCURSO ESTACIONES -------------------------------------------------------

datos = np.array([[125.2, 90], [124.3, 75], [119.9, 60], [104, 45], [79, 30], [23, 15], [5.6, 0]])
corriente, angulo = datos[:,0], datos[:,1]  # mA, º

plt.figure()
plt.scatter(angulo, corriente)
plt.grid()
plt.xlabel("Ángulo de Inclinación (º)")
plt.ylabel("Corrente (mA)")
plt.title("Corrente fronte a Ángulo de Inclinación")
plt.show()


# TRANSCURSO DÍA --------------------------------------------------------------

corriente = [6.7, 39.3, 55.4, 85.5, 87.6, 90.5, 83.3, 52.2, 8.5]  # mA
posicion = ["Este", "Suresteeste", "Sureste", "Sursureste", "Sur", "Sursudoeste", "Sudoeste", "Suroesteoeste", "Oeste"]
posicion_deg = []
for i in range(9):
    posicion_deg.append(90+22.5*i)

plt.figure()
plt.scatter(posicion, corriente)
plt.xticks(rotation=45, ha='right')
plt.tight_layout()
plt.grid()
plt.xlabel("Posición do Sol")
plt.ylabel("Corrente (mA)")
plt.title("Corrente fronte á posición do Sol")
plt.show()